layui.use(['table'], function () {
    var $ = layui.jquery;
    var layer = layui.layer;
    var form = layui.form;
    var table = layui.table;
    
    //获取到当前登录的用户
	var user = JSON.parse(sessionStorage.getItem("user"));
    
    //数据表格渲染
    table.render({
      elem: '#nuclearManipulationTable'
      //,url:'pack/nuclearManipulation/'
      ,data: []         
      ,method: 'get'
      ,where: {} // 你额外要携带数据，以键值对的方式存入
      ,cellMinWidth: 80 // 全局定义所有常规单元格的最小宽度（默认：60）
      ,cols: [[
        {type:'numbers'} // 序号
        ,{type: 'checkbox'} // 复选框
        ,{field:'stripeCode', title:'条码'}
        ,{field:'jobListNo', title:'工作单号'}
        ,{field:'nucleatedParts', title:'本次件数'}
        ,{field:'nucleatedHeavy', title:'本次重量'}
        ,{field:'userName', title:'操作人'}
      ]]
      ,page: true // 开启分页
      ,limit: 10 // 每页显示的条数
      ,limits: [5,10,20,50,100] // 每页条数的选择项
      ,loading: true // 是否显示加载条(切换分页的时候显示）
      ,id: 'nuclearManipulationTable' // 设定容器唯一 id
      ,even: false // 隔行变色
    });
    
    var initJobListNo = function(){
    	//页面一加载查询工作单信息并赋值给下拉框
        $.get("delivery/pack/jobListNo", function(result){
        	for (let i in result) {
        		$("#jobListNo").append(new Option(result[i], result[i]));
        	}
        	form.render('select'); // 更新下拉框
        });
    }
    //加载工作单号
    initJobListNo();
    
    //全局变量 存储审核通过的订单号
    var jobListNo = [];
    //全局变量 当前工作单对象
    var jobList = null;
    
    //下拉框选中事件
    form.on('select(jobListNo)', function(data){
    	//发送请求查询工作单的详细信息
    	$.get("delivery/pack/basicJobList?jobListNo="+data.value, function(res){
    		$("#ygdxx input[name=factQuantity]").val(res.factQuantity);
    		$("#ygdxx input[name=factWeight]").val(res.factWeight);
    		$("#ygdxx input[name=whither]").val(res.whither);
    		
    		$("#hdjsxx input[name=nucleatedParts]").val(res.factQuantity);
    		$("#hdjsxx input[name=nucleatedHeavy]").val(res.factWeight);
    		$("#hdjsxx input[name=gewichtsdifferenz]").val(0);
    		
    		//将当前返回的工作单对象存入全局
    		jobList = res;
    	});
    	
    	//判断当前订单号是否审核通过
    	for (let i in jobListNo) {
    		if (jobListNo[i] == data.value) {
    			return;
    		}
    	}
    	
    	//修改样式
    	$("#add").attr("disabled", false);
    	$("#add").css("background-color", "#009688");
    });
    
    // 核对重量输入框改变事件
    $("#hdjsxx [name=nucleatedHeavy]").on("input propertychange", function(){
    	// 原重量
    	let factWeight = parseInt($("#ygdxx input[name=factWeight]").val());
    	// 核对重量
    	let nucleatedHeavy = parseInt($("#hdjsxx input[name=nucleatedHeavy]").val());
    	// 重量差
    	$("#hdjsxx input[name=gewichtsdifferenz]").val(Math.abs(factWeight - nucleatedHeavy));
	})
	
    //核对通过按钮点击事件
    $("#add").click(function(){
    	//获取到表格的所有数据
    	var tableBak = table.cache.nuclearManipulationTable;
    	//给这个数组对象添加一条数据
    	tableBak.push({
    		jobListId: jobList.jobListId,
    		stripeCode: getRandomNumber(15),
    		jobListNo: jobList.jobListNo,
    		factQuantity: jobList.factQuantity,
    		factWeight: jobList.factWeight,
    		//operatingId: user.userId,
    		nucleatedParts: $("#hdjsxx input[name=nucleatedParts]").val(),
    		nucleatedHeavy: $("#hdjsxx input[name=nucleatedHeavy]").val(),
    		gewichtsdifferenz: $("#hdjsxx input[name=gewichtsdifferenz]").val(),
    		nuclearWeightUnit: user.orgName,
    		userName: user.userName
    	});
    	//重载数据表格
    	table.reload('nuclearManipulationTable', {data:tableBak});
    	
    	//修改全局变量
    	jobListNo.push($("#ygdxx #jobListNo").val());
    	
    	//修改样式
    	$("#add").attr("disabled", true);
    	$("#add").css("background-color", "#999");
    });
    
    //保存按钮点击事件
    $("#save").click(function(){
    	//获取到选择的行
    	var data = table.checkStatus('nuclearManipulationTable').data;
    	if (data.length == 0) {
    		layer.alert("请至少选择一行！");
    		return;
    	}
    	//被删除数据的ID数组
    	var removeIds = [];
    	for (let i in data) {
    		removeIds.push(data[i].jobListId);
    	}
    	//添加选择的数据位包装单
    	$.ajax({
    		url: 'delivery/pack/addPack',
	    	type: 'post',
            dataType:"json",      
            contentType:"application/json",               
	    	data: JSON.stringify(data),
	    	success: function(res){
	    		if (res) {
    				layer.msg("保存成功！", {icon: 1, time: 2500}); 
	    		} else {
	    			layer.msg("保存失败！", {icon: 2, time: 2500}); 
	    		}
	    		//获取到表格的所有数据
	        	var tableBak = table.cache.nuclearManipulationTable;
	        	//删除已经保存的数据
	        	for (let i in removeIds) {
	        		for (let j in tableBak) {
	        			if (removeIds[i] == tableBak[j].jobListId) {
	        				tableBak.splice(j, 1);
	        			}
		        	}
	        	}
	    		//刷新表格
	    		table.reload("nuclearManipulationTable", {data: tableBak});
	    		//刷新数据表格复选框选中
	    		//$(".layui-table-header tr th").eq(1).find("input[type=checkbox]").next().click();
	    	}
    	});
    });
    
});

/**
 * 获得指定位数的随机数
 * @param len
 * @returns
 */
function getRandomNumber(len){
	var randomNumber = "";
	for (let i = 0; i < len; i++) {
		randomNumber += Math.floor(Math.random() * 10); // 0 - 9 的随机数
	}
	return randomNumber;
}
